home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / swing / SwingLazyValue.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.8 KB  |  74 lines

  1. package sun.swing;
  2.  
  3. import [Ljava.lang.Object;;
  4. import java.awt.Color;
  5. import java.lang.reflect.Constructor;
  6. import java.lang.reflect.Method;
  7. import javax.swing.UIDefaults;
  8. import javax.swing.plaf.ColorUIResource;
  9.  
  10. public class SwingLazyValue implements UIDefaults.LazyValue {
  11.    private String className;
  12.    private String methodName;
  13.    private Object[] args;
  14.  
  15.    public SwingLazyValue(String var1) {
  16.       this(var1, (String)null);
  17.    }
  18.  
  19.    public SwingLazyValue(String var1, String var2) {
  20.       this(var1, var2, (Object[])null);
  21.    }
  22.  
  23.    public SwingLazyValue(String var1, Object[] var2) {
  24.       this(var1, (String)null, var2);
  25.    }
  26.  
  27.    public SwingLazyValue(String var1, String var2, Object[] var3) {
  28.       this.className = var1;
  29.       this.methodName = var2;
  30.       if (var3 != null) {
  31.          this.args = ((Object;)var3).clone();
  32.       }
  33.  
  34.    }
  35.  
  36.    public Object createValue(UIDefaults var1) {
  37.       try {
  38.          Class var2 = Class.forName(this.className, true, (ClassLoader)null);
  39.          if (this.methodName != null) {
  40.             Class[] var7 = this.getClassArray(this.args);
  41.             Method var8 = var2.getMethod(this.methodName, var7);
  42.             return var8.invoke(var2, this.args);
  43.          } else {
  44.             Class[] var4 = this.getClassArray(this.args);
  45.             Constructor var5 = var2.getConstructor(var4);
  46.             return var5.newInstance(this.args);
  47.          }
  48.       } catch (Exception var6) {
  49.          return null;
  50.       }
  51.    }
  52.  
  53.    private Class[] getClassArray(Object[] var1) {
  54.       Class[] var2 = null;
  55.       if (var1 != null) {
  56.          var2 = new Class[var1.length];
  57.  
  58.          for(int var3 = 0; var3 < var1.length; ++var3) {
  59.             if (var1[var3] instanceof Integer) {
  60.                var2[var3] = Integer.TYPE;
  61.             } else if (var1[var3] instanceof Boolean) {
  62.                var2[var3] = Boolean.TYPE;
  63.             } else if (var1[var3] instanceof ColorUIResource) {
  64.                var2[var3] = Color.class;
  65.             } else {
  66.                var2[var3] = var1[var3].getClass();
  67.             }
  68.          }
  69.       }
  70.  
  71.       return var2;
  72.    }
  73. }
  74.